package org.lc.cmd.connect;

import org.lc.cmd.connect.model.CloseInfo;

public interface ReconnectStrategy {
    /**
     * 重试
     *
     * @param session 断联的session
     * @param closeInfo 关闭原因
     * @param retryTimes 重试此时，从0开始
     * @return 重试等待时间，返回-1表示退出重试
     */
    default long onRetry(ClientSession session, CloseInfo closeInfo, int retryTimes) {
        return 1_000;
    }

    /**
     * 重新建立连接回调
     */
    default void onReconnected(ClientSession session) {
    }
}
